thinkphp5项目--个人博客(三)
项目地址
fry404006308/personalBlog: personalBlog
https://github.com/fry404006308/personalBlog
一、使用百度编辑器
百度编辑器简介及使用链接:
百度编辑器简介及如何使用 - 复习,总结,实例 - 博客园
http://www.cnblogs.com/Renyi-Fan/p/8778291.html代码
1 2 3 4童老师ThinkPHP交流群:484519446 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 {include file="common/top"} 29 30 3132163 164 165 166 167 168 169 170 171 172 175 176 177 178 17933 34 35 {include file="common/left"} 36 37 38 3916240 41160 161 52 53 54 5556 57158 15958156 15759155 154
二、列表内容显示
控制器
1 $cateres=db('cate')->select();2 $this->assign('cateres',$cateres);3 return view();
视图
12 34 1011
三、图片上传
thinkphp5教程
1 假设表单代码如下: 26 7 8 然后在控制器中添加如下的代码: 9 public function upload(){10 // 获取表单上传文件 例如上传了001.jpg11 $file = request()->file('image');12 // 移动到框架应用根目录/public/uploads/ 目录下13 $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');14 if($info){15 // 成功上传后 获取上传信息16 // 输出 jpg17 echo $info->getExtension();18 // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg19 echo $info->getSaveName();20 // 输出 42a79759f284b767dfcb2a0197904287.jpg21 echo $info->getFilename();22 }else{23 // 上传失败获取错误信息24 echo $file->getError();25 }26 }27 move 方法成功的话返回的是一个SplFileInfo 对象,你可以对上传后的文件进行后续操作。
后续文件操作
上传成功后返回的是File 对象,除了可以使用SplFileObject 的属性和方法之外,还可以使用File类自身提供的下列方法,便于进行后续的文件处理(例如对图像文件进行剪裁处理或者移动到远程服务器)。方法描述getSaveName 获取保存的文件名(包含动态生成的目录)getInfo 获取上传文件信息getMime 获取文件的MIME信息md5 获取文件的md5散列值sha1 获取文件的sha1散列值
控制器
1 //如果有图片上传 2 if($_FILES['pic']['tmp_name']){ 3 // 获取表单上传文件 例如上传了001.jpg 4 $file = request()->file('pic'); 5 // 移动到框架应用根目录/public/uploads/ 目录下 6 $info = $file->move(ROOT_PATH . 'public' . DS . 'static/uploads'); 7 // 已经上传成功,我们要把文件的路径写进数据库 8 $data['pic']='uploads/'.$info->getSaveName(); 9 // dump($data['pic']);die;10 }
配置文件
1 [ 8 // 模板后缀 9 'view_suffix' => 'htm',10 ],11 12 13 // 视图输出字符串内容替换14 'view_replace_str' => [15 '__PUBLIC__'=>SITE_URL.'/public/static/admin',16 '__IMG__'=>SITE_URL.'/public/static/',17 ],18 // 默认跳转页面对应的模板文件19 'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',20 'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',21 ];
视图
1 2 {if condition="$value['pic'] neq '' "}3 4 {else /}5 暂无缩略图6 {/if}7
四、数据表的链接查询
控制器
1 public function lst()2 {3 // 分页输出列表 每页显示3条数据4 // $list = ArticleModel::paginate(3);5 6 $list=db('article')->alias('a')->join('cate c','c.id=a.cateid')->field('a.id,a.title,a.pic,a.author,a.state,c.catename')->paginate(3);7 $this->assign('list',$list);8 return view('list');9 }
视图
{$value.catename}
五、关联模型
模型
1 belongsTo('cate','cateid');11 }12 }
控制器
1 public function lst() 2 { 3 // 分页输出列表 每页显示3条数据 4 // $list = ArticleModel::paginate(3); 5 6 // $list=db('article')->alias('a')->join('cate c','c.id=a.cateid')->field('a.id,a.title,a.pic,a.author,a.state,c.catename')->paginate(3); 7 8 $list = ArticleModel::paginate(3); 9 10 11 $this->assign('list',$list);12 return view('list');13 }
视图
1 <td align="center">{$value.cate.catename}</td>
对应参照的thinkphp手册
1 我们就可以根据档案资料来获取用户模型的信息2 $profile = Profile::find(1);3 // 输出User关联模型的属性4 echo $profile->user->account;
1 定义相对的关联 2 要在 Comment 模型定义相对应的关联,可使用 belongsTo 方法: 3 name app\index\model; 4 use think\Model; 5 class Comment extends Model 6 { 7 public function article() 8 { 9 return $this->belongsTo('article');10 }11 }
1 hasMany('关联模型名','外键名','主键名',['模型别名定义']);